<?php

# -- DÉBUT NOTE DE LICENCE -------------------------------------
#
# Ce fichier fait partie de Clicpage.
#
# Copyright (c) 2010 Francois (www.clicpage.net)
# Distribué selon les termes de la licence GPL version 2.0.
# Consultez le fichier LICENCE ou
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# Ce fichier est inspiré de Dotclear 2
# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
# Dotclear 2 est distribué selon les termes de la licence GPL
# version 2.0.
#
# -- FIN NOTE DE LICENCE ---------------------------------------

class antispamMotsInterdits extends cpAntispam
{
	
	public function estIndesirable($auteur, $email, $ip, $titre, $contenu, $page_id, &$details)
	{
		$str = $auteur.' '.$email.' '.$titre.' '.$contenu;
		
		$rs = $this->getMots();
		
		while ($rs->fetch())
		{
			$mot = $rs->regle_valeur;
			
			if (substr($mot,0,1) == '/' && substr($mot,-1,1) == '/') {
				$reg = substr(substr($mot,1),0,-1);
			} else {
				$reg = preg_quote($mot, '/');
				$reg = '(^|\s+|>|<)'.$reg.'(>|<|\s+|\.|$)';
			}
			
			if (preg_match('/'.$reg.'/msiu',$str)) {
				$details = $mot;
				return true;
			}
		}
		
		return;
	}
	
	public function getMots($order=false)
	{
		
		$strReq = 'SELECT regle_id, regle_valeur '.
			'FROM '.$this->core->prefix.'regles_antispam '.
			"WHERE regle_nom = 'motsInterdits'";
		
		if($order) {
			$strReq.= ' ORDER BY regle_valeur';
		}
	
		return $this->core->con->select($strReq);
	}
	
	public static function installer($core)
	{
		
		$defaultWords = array(
			'/-credit(\s+|$)/',
			'/-digest(\s+|$)/',
			'/-loan(\s+|$)/',
			'/-online(\s+|$)/',
			'4u',
			'adipex',
			'advicer',
			'ambien',
			'baccarat',
			'baccarrat',
			'blackjack',
			'bllogspot',
			'bolobomb',
			'booker',
			'byob',
			'car-rental-e-site',
			'car-rentals-e-site',
			'carisoprodol',
			'cash',
			'casino',
			'casinos',
			'chatroom',
			'cialis',
			'craps',
			'credit-card',
			'credit-report-4u',
			'cpas',
			'cyclen',
			'cyclobenzaprine',
			'dating-e-site',
			'day-trading',
			'debt',
			'digest-',
			'discount',
			'discreetordering',
			'duty-free',
			'dutyfree',
			'estate',
			'favourits',
			'fioricet',
			'flowers-leading-site',
			'freenet',
			'freenet-shopping',
			'gambling',
			'gamias',
			'health-insurancedeals-4u',
			'holdem',
			'holdempoker',
			'holdemsoftware',
			'holdemtexasturbowilson',
			'hotel-dealse-site',
			'hotele-site',
			'hotelse-site',
			'incest',
			'insurance-quotesdeals-4u',
			'insurancedeals-4u',
			'jrcreations',
			'levitra',
			'macinstruct',
			'mortgage',
			'online-gambling',
			'onlinegambling-4u',
			'ottawavalleyag',
			'ownsthis',
			'palm-texas-holdem-game',
			'paxil',
			'pharmacy',
			'phentermine',
			'pills',
			'poker',
			'poker-chip',
			'poze',
			'prescription',
			'rarehomes',
			'refund',
			'rental-car-e-site',
			'roulette',
			'shemale',
			'slot',
			'slot-machine',
			'soma',
			'taboo',
			'tamiflu',
			'texas-holdem',
			'thorcarlson',
			'top-e-site',
			'top-site',
			'tramadol',
			'trim-spa',
			'ultram',
			'v1h',
			'vacuum',
			'valeofglamorganconservatives',
			'viagra',
			'vicodin',
			'vioxx',
			'xanax',
			'zolus'
		);
		
		$cur = $core->con->openCursor($core->prefix.'regles_antispam');
		
		$rs = $core->con->select(
			'SELECT MAX(regle_id) '.
			'FROM '.$core->prefix.'regles_antispam'
		);
		
		$cur->regle_id = (integer) $rs->f(0);
		$cur->regle_nom = 'motsInterdits';
		
		foreach($defaultWords as $v)
		{
			$cur->regle_id = (integer) $cur->regle_id + 1;
			$cur->regle_valeur = $v;
			$cur->insert();
		}
		
		$core->site->setStatutAntispam('motsInterdits', true);
		
	}

	public function moduleAdmin() {
		return 'antispamMotsInterdits';
	}
	
}

?>